﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Caching;
using Controllerss;
using Core.Contract.DataContract;
using www.Controllers;
//using www.SService;

namespace www.Admin
{
    public partial class ChangePassword : System.Web.UI.Page
    {
        #region Value
        private readonly ObjectCache _cache = MemoryCache.Default;
        //private readonly HyServicesClient _service1 = new HyServicesClient();
        private readonly LoginController _loginController=new LoginController();
        private readonly Utility _utility = new Utility();
        #endregion
        #region Contructor
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadData();
        }
        #endregion
        #region Event
        protected void Changed(object sender, EventArgs e)
        {
            try
            {
                var username = Request.QueryString["user"];
                var pass = Request.QueryString["code"];
                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(pass))
                {
                    Message("đường dẫn yêu cầu lấy lại mật khẩu không hợp lệ.");
                    Response.Redirect("LoginAdmin.aspx");
                }

                var lData = (List<RelaxLoginsDataContract>)_cache["Staff"];
                if (lData == null)
                    Response.Redirect("LoginAdmin.aspx");

                if (lData != null)
                {
                    var first = lData.FirstOrDefault(p => p.UserName == username && p.Password == pass);

                    if (first != null)
                    {
                        if (string.IsNullOrEmpty(txtpassword.Value) || string.IsNullOrEmpty(txtRePassword.Value))
                        {
                            Message("Mật khẩu không được để trống.");
                            return;
                        }
                        if (txtpassword.Value.Length < 6)
                        {
                            Message("Mật khẩu không được nhỏ hơn 6 ký tự.");
                            return;
                        }
                        first.Password = _utility.Encrypt("Dragon_hy", txtpassword.Value);
                        if (_loginController.UpdateLogin(first))
                        {
                            _cache["Staff"] = lData;
                            Message("Thay đổi mật khẩu thành công.");
                            Response.Redirect("LoginAdmin.aspx");
                        }
                    }
                    else
                    {
                        Message("đường dẫn yêu cầu lấy lại mật khẩu không hợp lệ.");
                        Response.Redirect("LoginAdmin.aspx");
                    }
                }
            }
            catch (Exception)
            {

            }
        }
        #endregion
        #region Business

        protected void LoadData()
        {
            if (_cache["Staff"] == null)
            {
                var lData = _loginController.GetAllUser();
                if (lData.Any())
                {
                    var policy = new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddHours(27) };
                    _cache.Set("Staff", lData.ToList(), policy);
                }
            }
        }

        private void Message(string msg)
        {
            Response.Write("<script>alert('" + msg + "');</script>");
        }
        #endregion
    }
}